获取器(V5.1.20+

Db类也可以支持获取器定义,例如:

  1. Db::name('user')->withAttr('name', function($value, $data) {
  2. return strtolower($value);
  3. })->select();

上面的代码,查询的数据集数据中的name字段的值会统一进行小写转换。

withAttr方法可以多次调用,对多个字段定义获取器。

支持对JSON字段定义获取器,例如:

  1. $user = Db::name('user')
  2. ->json(['info'])
  3. ->withAttr('info.name', function($value, $data) {
  4. return strtolower($value);
  5. })->find(1);
  6. dump($user);

查询结果返回的时候,会自动对info字段(JSON字段)的name属性使用获取器操作。